using System;
using System.Collections.Generic; // 引用：List 泛型集合

namespace Mes.Production.Models
{
    /// <summary>
    /// 生产订单列表返回DTO（与后端字段对应）
    /// </summary>
    public class ProductionOrderListQueryDto
    {
        public int Id { get; set; } // 订单Id
        public string OrderNumber { get; set; } // 订单编号
        public int OrderSource { get; set; } // 订单来源
        public string FinishedNo { get; set; } // 成品编号
        public double ProducedQuantity { get; set; } // 成品总数量
        public string Remarks { get; set; } // 备注
        public DateTime? CreateTime { get; set; } // 创建时间
    }

    /// <summary>
    /// 生产订单列表查询请求模型（发送给后端）
    /// </summary>
    public class QueryProductionOrderList
    {
        public string OrderNumber { get; set; } // 订单编号（模糊）
        public string FinishedNo { get; set; } // 成品编号（模糊）
        public int? OrderSource { get; set; } // 订单来源
        public string CreateStartDate { get; set; } // 创建开始时间（yyyy-MM-dd）
        public string CreateEndDate { get; set; } // 创建结束时间（yyyy-MM-dd）
        public int PageIndex { get; set; } = 1; // 页码，从1开始
        public int PageSize { get; set; } = 20; // 每页大小
    }
}

namespace Mes.Production.Models
{

    /// <summary>
    /// 生产订单项DTO（与后端命令对齐，仅传必需字段）
    /// </summary>
    public class ProductionOrderItemDto
    {
        /// <summary>
        /// 成品ID
        /// </summary>
        public int MaterialId { get; set; }

        /// <summary>
        /// 计划产量
        /// </summary>
        public double PlannedQuantity { get; set; }

        /// <summary>
        /// 交付日期
        /// </summary>
        public DateTime? DeliveryDate { get; set; }
    }

    /// <summary>
    /// 创建生产订单请求模型
    /// </summary>
    public class CreateProductionOrderRequest
    {
        /// <summary>
        /// 订单编号
        /// </summary>
        public string OrderNumber { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remarks { get; set; }

        /// <summary>
        /// 订单来源ID
        /// </summary>
        public int OrderSource { get; set; }

        /// <summary>
        /// 创建人ID
        /// </summary>
        public int CreatorId { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 生产订单项列表
        /// </summary>
        public List<ProductionOrderItemDto> ProductionOrderItem { get; set; }

        public CreateProductionOrderRequest()
        {
            OrderNumber = string.Empty;
            Remarks = string.Empty;
            ProductionOrderItem = new List<ProductionOrderItemDto>();
        }
    }

}